package com.tanhua.dubbo.server.api;

import com.tanhua.dubbo.server.pojo.Identification;
import com.tanhua.dubbo.server.pojo.Option;
import com.tanhua.dubbo.server.pojo.Question;
import com.tanhua.dubbo.server.pojo.TestSoulQuestionnaire;
import com.tanhua.dubbo.server.vo.Answer;
import org.bson.types.ObjectId;

import java.util.List;

public interface TestSoulApi {

    /**
     * 实现功能:获取系统推荐的灵魂问卷列表
     */
    public List<TestSoulQuestionnaire> getTestSoulQuestionnaires(Long userId);


    /**
     * 实现功能:获取对应灵魂问卷的试题列表
     */
    public List<Question> getQuestions(List<ObjectId> questionIds);


    /**
     * 实现功能:获取对应试题的选项列表
     */
    public List<Option> getOptions(List<ObjectId> optionIds);

    /**
     * 查看问卷报告
     * @param reportId
     * @return
     */
    public Identification getIdentification(String reportId);

    /**
     * 提交问卷
     * @param answers
     * @param userId
     * @return
     */
    Identification postTestSoul(Answer[] answers, Long userId);

    /**
     * 获取最新的问卷的报告id
     * @param userId
     * @param id
     * @return
     */
    String searchReportId(Long userId, ObjectId id);

    /**
     * 保存报告信息
     * @param identification
     */
    void save(Identification identification);

    /**
     * 根据问卷id获取问卷级别
     * @param questionnaireId
     * @return
     */
    String getLevel(ObjectId questionnaireId);
}
